#ifndef __FSM_H__
#define __FSM_H__

#define BUFSIZE	1024

enum {STATE_R, STATE_W, STATE_E, STATE_T};

typedef struct {
	int rfd, wfd;
	int state; // 状态机的状态
	char buf[BUFSIZE]; // 存储读取数据的buf
	int read_cnt; // 读取的字节个数
	int pos; // 从buf那个位置开始写
	char *errmsg; // 出错函数名
}fsm_t;

int fsm_init(fsm_t **my_fsm, int rfd, int wfd);

int fsm_drive(fsm_t *my_fsm);

void fsm_destroy(fsm_t **my_fsm);

#endif

